package com.yunlong.mapper;


import com.yunlong.dto.AllGeekersDto;
import com.yunlong.dto.getUserDto;
import com.yunlong.entity.Geeker;
import com.yunlong.entity.Manager;
import com.yunlong.form.UserRegisterForm;

import java.util.List;

/**
 * @author guorui
 */
public interface ManagerMapper {
    /**
     * 管理员新增用户，在userinfo中加入学号和方向
     * @param userRegisterForm
     */
    void userInfoRegister(UserRegisterForm userRegisterForm);
    /**
     * 管理员新增用户
     * @param userRegisterForm
     */
    void userRegister(UserRegisterForm userRegisterForm);

    /**
     * @param userRegisterForms
     * @Description 管理员通过excel批量插入用户
     */
    void usersRegister(List<UserRegisterForm> userRegisterForms);

    /**
     * @param userRegisterForms
     */
    void usersInfoRegister(List<UserRegisterForm> userRegisterForms);
    /**
     * 管理员删除用户账号
     * @param userID
     */
    void deletedUsers(List<String> userID);
    /**
     * 管理员删除管理员账号
     * @param geekerId
     */
    void deletedManagers(List<String> geekerId);
    /**
     * 超级管理员新增管理员
     * @param managerId         管理员Id
     * @param managerName       管理员姓名
     * @param managerPhone      管理员手机号
     * @param projectInfo        管理员参与项目情况
     * @param managerDirection    管理员所在部门
     * @param managerStation   管理员职务
//     * @param managerStatus     管理员级别，1是普通，2是超级
     */
    void managerRegister(String managerId, String managerName, String managerDirection, String projectInfo,String managerStation, String managerPhone);
    /**
     * 查找此邮箱是否已注册,查询管理员表
     *
     * @param geeker_email
     * @return Geeker
     */
    Geeker selectManagerByEmail(String geeker_email);
    /**
     * 查找此邮箱是否已注册,查询管理员表
     *
     * @param managerPhone
     * @return Manager
     */
    Manager selectManagerByPhone(String managerPhone);
    /**
     * 按学号查询管理员
     */
    Geeker selectManagerById(String managerId);
    /**
     * 管理员激活用户账号
     *
     * @param userId
     */
    void approvalRegister(List<String> userId);
    /**
     * 管理员冻结用户账号
     * @param userId
     */
    void rejectRegister(List<String>  userId);
    /**
     *给管理员展示所有存在的学员
     * @return AllRegistersDto
     */
    List<getUserDto> selectAllUsers();
    /**
     *管理员通过学号查询某个学员
     * @return AllRegistersDto
     */
    getUserDto selectUserById(String userId);
    /**
     *管理员通过姓名查询某个学员
     * @return AllRegistersDto
     */
    getUserDto selectUserByName(String userName);
    /**
     *给超级管理员展示所有管理员
     * @return AllRegistersDto
     */
    List<AllGeekersDto> selectAllManagers();

    /**
     * 获取所有状态正常的普通管理员邮箱
     * @return
     */
    List<String> getAllManagerEmail();
}
